package com.pipayshop.entity;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
 * 网店表
 * @TableName shop_info
 */
@Data
@TableName("shop_info")
@AllArgsConstructor
@NoArgsConstructor
public class UserShopInfo implements Serializable {

    /**
     * 主键id
     */
    @NotNull(message="[]不能为空")
    @ApiModelProperty("主键id")
    private Integer id;

    /**
     * 网店id
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("网店id")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("shop_id") // 映射数据库字段
    private String shopId;

    /**
     * 网店名称
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("网店名称")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("shop_name") // 映射数据库字段
    private String shopName;

    /**
     * 网店的标签id集合
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("网店的标签id集合")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("tag_list") // 映射数据库字段
    private String tagList;

    /**
     * 网店评分
     */
    @ApiModelProperty("网店评分")
    private Double score; // 修改为 Double 类型以符合数据库的 double(3, 2)

    /**
     * 网店简介（广告词）
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("网店简介（广告词）")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("shop_introduce") // 映射数据库字段
    private String shopIntroduce;

    /**
     * 网店图片的路径集合
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("网店图片的路径集合")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("shop_imag_list") // 映射数据库字段
    private String shopImagList;

    /**
     * 网店的分类（跟网店分类表关联）
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("网店的分类（跟网店分类表关联）")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("category_id") // 映射数据库字段
    private String categoryId;

    /**
     * 网店所有者的用户id
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("网店所有者的用户id")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("uid") // 映射数据库字段
    private String uid;

    /**
     * 0：正常1：审核2：下架
     */
    @ApiModelProperty("0：正常1：审核2：下架")
    @TableField("status") // 映射数据库字段
    private Integer status;

    /**
     * 会员标识（0：否1：是）
     */
    @ApiModelProperty("会员标识（0：否1：是）")
    @TableField("membership") // 映射数据库字段
    private Integer membership;

    /**
     * 网店头像
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("网店头像")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("avatar") // 映射数据库字段
    private String avatar;

    /**
     * pi钱包地址
     */
    @Size(max= 255, message="编码长度不能超过255")
    @ApiModelProperty("pi钱包地址")
    @Length(max= 255, message="编码长度不能超过255")
    @TableField("pi_address") // 映射数据库字段
    private String piAddress;

    /**
     * 剩余可绑定的网店店数量
     */
    @ApiModelProperty("剩余可绑定的网店店数量")
    @TableField("shop_upload_balance") // 映射数据库字段
    private Integer shopUploadBalance;
}
